package com.softer.chengxin.excel.service;

import com.softer.chengxin.common.domin.CommonResult;
import com.softer.chengxin.common.domin.ManagerPageResult;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.excel.domin.ExcelExportRecordVO;
import com.softer.chengxin.excel.domin.ExportExcel;
import com.softer.chengxin.excel.domin.MenuDTO;

import java.util.List;

/**
 * @author Wang Xinrui
 * @date 2019/1/10
 */
public interface ExcelService {

    /**
     * 获取excel列表
     *
     * @param excelName 报表名
     * @param loginName 登录名
     * @param page      页码
     * @param excelType 报表类型（0自定义报表，1统计报表）
     * @return 结果集
     */
    ManagerPageResult getExcelList(String excelName, String loginName, Page page, String excelType);

    /**
     * excel记录详细
     *
     * @param id id
     * @return 结果
     */
    ExcelExportRecordVO excelDetail(Integer id);

    /**
     * 删除excel记录
     *
     * @param id id
     * @return 结果集
     */
    CommonResult deleteExcel(Integer id);

    /**
     * 获取导出excel页面的字段
     *
     * @param parentId 父id
     * @return 结果
     */
    List<MenuDTO> listMenus(Integer parentId);

    /**
     * 导出报表数据
     *
     * @param exportExcel 报表实体
     *                    <p>
     *                    fields          需要导出的字段字符串
     *                    type            报表类型
     *                    district        所在地
     *                    qyName          企业名
     *                    projectName     项目名
     *                    insurance       是否缴纳五险一金
     *                    certificate     是否有中级职业资格证书
     *                    duties          职务，人员类型
     *                    year            年度
     *                    dj              等级
     *                    department      培训部门
     *                    subject         培训科目
     *                    excelName       excel名
     *                    excelRecordId   登录名excel记录id（如果不为空说明是修改记录，如果为空新怎）
     *                    isCX            是否是查询接口
     *                    infoType        消息类型(1优良信息，2负面信息)
     *                    registerAddress 注册地
     * @param page        页码
     * @param loginName   登录名
     * @return 结果集
     */
    ManagerPageResult exportExcel(ExportExcel exportExcel, Page page, String loginName);

    /**
     * 获取等级下拉列表
     *
     * @return 等级列表
     */
    List<String> getDj();
}
